package com.hopu.v1.service.admin.system;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hopu.v1.pojo.common.PageData;
import com.hopu.v1.pojo.system.Staff;
import com.hopu.v1.vo.StaffVo;
import com.hopu.v1.vo.StaffVo2;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author YwaiX
 * @since 2024-09-12
 */
public interface StaffService extends IService<Staff> {

    /**
     * 导出员工信息
     * @param staffs
     * @param response
     */
    void exportUsersToExcel(List<Staff> staffs, HttpServletResponse response) throws IOException;

    /**
     * 获取员工列表-袁胡宇
     *
     * @param page
     * @return
     */
    PageData<StaffVo> selectAll(Page<Staff> page, Staff staffInfo);
    
    String login(Staff staff);
    
    /**
     * 修改员工
     *
     * @param staff
     */
    void update(Staff staff);
    
    /**
     * 根据员工编号查询员工信息
     *
     * @param staffNo
     * @return
     */
    StaffVo staffInfo(String staffNo);
    
    /**
     * 添加员工
     *
     * @param staff
     */
    void add(Staff staff);
    
    /**
     * 修改员工密码或者手机号
     *
     * @param staffNo
     * @param password
     * @param phone
     * @param photoUrl
     * @param realName
     * @param gender
     */
    void updateInfo(String staffNo, String password, String phone, String photoUrl, String realName, String gender);

    /**
     * 修改员工状态
     *
     * @param id
     * @param status
     */
    void updateStatus(Integer id, Integer status);
    
    /**
     * 批量删除用户
     *
     * @param ids
     */
    void deleteStaff(List<Integer> ids);

    /**
     * 获取最新一条员工编号
     */
    String selectStaffNo(String staffNo);

    List<StaffVo2> getStaffsWithSubjects();
}
